﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Data.SqlClient;
using GestorDeFlotasDesktop.Classes;

namespace GestorDeFlotasDesktop.AbmChofer
{
    public partial class AbmChofer : Form
    {
        public AbmChofer()
        {
            InitializeComponent();
        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            txtApellido.Text = string.Empty;
            txtDNI.Text = string.Empty;
            txtNombre.Text = string.Empty;
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            List<SqlParameter> Parameters = new List<SqlParameter>();

            if (txtDNI.Text == string.Empty)
                Parameters.Add(new SqlParameter("@dni", DBNull.Value));
            else
                Parameters.Add(new SqlParameter("@dni", txtDNI.Text));

            if (txtNombre.Text == string.Empty)
                Parameters.Add(new SqlParameter("@nombre", DBNull.Value));
            else
                Parameters.Add(new SqlParameter("@nombre", txtNombre.Text));

            if (txtApellido.Text == string.Empty)
                Parameters.Add(new SqlParameter("@apellido", DBNull.Value));
            else
                Parameters.Add(new SqlParameter("@apellido", txtApellido.Text));

            SqlInterface.Conectar();
            SqlDataReader ClienteReader;
            ClienteReader = SqlInterface.ExecuteReader("SQUIRTLE.spBuscarChofer", CommandType.StoredProcedure, Parameters);
            if (ClienteReader.HasRows)
            {
                DataTable tablaResultado = new DataTable();
                tablaResultado.Load(ClienteReader);
                gridResultados.DataSource = tablaResultado;
            }
            else
            {
                MessageBox.Show("No hay chofer que cumpla con la campos de su búsqueda.");
            }
            SqlInterface.Desconectar();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            NuevoChofer nuevoChofer = new NuevoChofer();
            nuevoChofer.Show();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            Chofer chofer = new Chofer();
            int index = gridResultados.SelectedCells[0].RowIndex;

            chofer.blnHabilitado = Convert.ToBoolean(gridResultados["CHOFER_HABILITADO", index].Value);
            chofer.dtmFechaNacimiento = Convert.ToDateTime(gridResultados["CHOFER_FECHANAC", index].Value);
            chofer.intDNI = Convert.ToInt32(gridResultados["CHOFER_DNI", index].Value);
            chofer.intTelefono = Convert.ToInt32(gridResultados["CHOFER_TELEFONO", index].Value);
            chofer.strApellido = Convert.ToString(gridResultados["CHOFER_APELLIDO", index].Value);
            chofer.strDireccion = Convert.ToString(gridResultados["CHOFER_DIRECCION", index].Value);
            chofer.strMail = Convert.ToString(gridResultados["CHOFER_MAIL", index].Value);
            chofer.strNombre = Convert.ToString(gridResultados["CHOFER_NOMBRE", index].Value);
            chofer.strCodigoPostal = Convert.ToString(gridResultados["CHOFER_CPOSTAL", index].Value);

            NuevoChofer nuevoChofer = new NuevoChofer(chofer);
            nuevoChofer.Show();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (gridResultados.SelectedRows.Count > 1)
            {
                MessageBox.Show("Solo esta permitido elegir un cliente por vez.");
                return;
            }

            List<SqlParameter> Parameters = new List<SqlParameter>();
            int index = gridResultados.SelectedCells[0].RowIndex;

            Parameters.Add(new SqlParameter("@dni", Convert.ToInt32(gridResultados["CHOFER_DNI", index].Value)));

            SqlInterface.Conectar();
            int resultado = SqlInterface.ExecuteNonQuery("SQUIRTLE.spBajarChofer", CommandType.StoredProcedure, Parameters);
            if (resultado == -1)
                MessageBox.Show("No se ha podido eliminar el chofer solicitado.");
            else
                MessageBox.Show("El chofer ha sido eliminado con éxito.");

            Parameters.Clear();
            SqlInterface.Desconectar();
        }
    }
}
